/* 
 * Example of thread for linux
 * File:   thread.cpp
 * Author: alexander
 *
 * Created on 23 Август 2012 г., 19:47
 */
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <pthread.h>
#include <iostream>
using namespace std;

void * thread_func(void *arg){
    int i;
    int loc_id = * (int *) arg;
    for (i = 0; i < 4; i++) {
        printf("Поток %i работает\n", loc_id);
        sleep(1);
    }
}

/*
 * 
 */
int main(int argc, char** argv) {

    cout << "Hello world!";
    

    int id1, id2, result;
    pthread_t thread1, thread2;
    id1 = 1;
     result = pthread_create(&thread1, NULL, thread_func, &id1);
    if (result != 0) {
        perror("Создание первого потока!");
        return EXIT_FAILURE;
    }
      id2 = 2;
    result = pthread_create(&thread2, NULL, thread_func, &id2);
    if (result != 0) {
        perror("Создание второго потока");
        return EXIT_FAILURE;
    }
     sleep(2);
    cout << "Ждём конца!\n";
      result = pthread_join(thread1, NULL);
    if (result != 0) {
        perror("Ждём первый поток");
        return EXIT_FAILURE;
    }
    result = pthread_join(thread2, NULL);
    if (result != 0) {
        perror("Ждём второй поток");
        return EXIT_FAILURE;
    }
      printf("Done\n");
    return EXIT_SUCCESS;
    
    
}

